import Vue from 'vue'
import Vuex from 'vuex'
import VuexPersistence from 'vuex-persist';
// 要使用vuex配套的持久化插件 先安装
// cnpm i vuex-persist --save

Vue.use(Vuex)

export default new Vuex.Store({
  // 保持组件状态
  state: {
    cartlist:[]
  },
  // 修改组件状态 同步操作
  mutations: {
    add(state,item) {
      var flag = false;
      // 判断要添加的商品在购物车里存不存在
      state.cartlist.forEach((i) => {
        if(i.id == item.id){
          i.num++;
          flag = true;
        }
      });
      if(flag == false){
        item.num = 1;
        state.cartlist.push(item);
      }
    },
    // 步进器 ++
    max(state,id){
      state.cartlist.forEach((item) => {
        if(item.id == id){
          item.num++;
        }
      }); 
    },
    // 步进器 --
    min(state,id){
      state.cartlist.forEach((item) => {
        if(item.id == id){
          item.num--;
        }
      });
    },
    // 删除
    remove(state,id){
      state.cartlist.forEach((item,index) => {
        if(item.id == id){
          state.cartlist.splice(index,1);
        }
      });
    }
  },
  // 触发 mutations
  actions: {
  },
  modules: {
  },
  plugins:[
    new VuexPersistence({
      storage: window.localStorage,
    }).plugin,
  ],
  // plugin 是插件的意思 在这里使用安装的持久化插件 把vuex中的数据存在本地存储中
})
 